Repository navigation
ci: gate pull requests on a single Build Success check - #15
Merged
Merged
Conversation
Collapses lint.yaml, tests.yaml and e2e.yaml into one ci.yaml whose jobs fan in to a Build Success job, so a ruleset can require branches to be up to date before merge. All job bodies are unchanged. The three workflows each carried an identical "Detect Changed Charts" job; they collapse into one that all three matrix jobs now depend on, rather than the chart list being recomputed three times per pull request. Requiring the individual jobs is unsafe: they are skipped for release-please PRs and when no chart changed, and a required check that never reports blocks the pull request permanently. Build Success runs on !cancelled(), so it reports whether its dependencies pass or skip. The pull request trigger drops paths-ignore for the same reason. Job ids form a helm-* family, each job name is derived from its id, and the jobs are ordered alphabetically with the fan-in last. The matrix jobs keep their per-chart suffix so each leg still reports a distinct check. Signed-off-by: Devin Buhl <devin@buhl.casa>
Greptile SummaryConsolidates the lint, unit-test, end-to-end, and repository-check workflows into one CI workflow with shared changed-chart detection and a single aggregate Build Success gate.
|
| Filename | Overview |
|---|---|
| .github/workflows/ci.yaml | Consolidates all existing CI jobs, adds merge-queue support, and introduces the aggregate Build Success check without an identified actionable defect. |
| .github/workflows/e2e.yaml | Deletes the standalone end-to-end workflow after moving its job body into the consolidated CI workflow. |
| .github/workflows/lint.yaml | Deletes the standalone lint workflow after moving its job body into the consolidated CI workflow. |
Reviews (1): Last reviewed commit: "ci: gate pull requests on a single Build..." | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Overview
Collapses
lint.yaml,tests.yamlande2e.yamlinto a singleci.yamlwhosejobs fan in to a
Build Successjob, so a ruleset can require branches to be upto date before merge.
All job bodies are unchanged. The three workflows each carried a byte-identical
Detect Changed Chartsjob; those collapse into one job that all three matrixjobs depend on, so the chart list is computed once per pull request instead of
three times.
Same change as home-operations/kromgo#321.
Additional information
GitHub rejects
strict_required_status_checks_policyunless at least one checkis required, and the individual jobs are unsafe to require here for two reasons:
they are skipped for release-please PRs, and they are skipped when no chart
changed. A required check that never reports blocks the PR permanently.
Build Successruns on!cancelled(), so it reports whether its dependenciespass or skip.
The pull request trigger drops
paths-ignorefor the same reason.The matrix jobs keep their per-chart name suffix (
Helm Lint (${{ matrix.chart }}))so each leg still reports a distinct check.
Job ids are aligned to a
helm-*family and eachname:is derived from its id:checks— "Repo Checks"repo-checks— "Repo Checks"helm-test— "Helm Unit Tests (…)"helm-unittest— "Helm Unittest (…)"e2e— "Install on kind (…)"helm-e2e— "Helm E2E (…)"changed— "Detect Changed Charts"changed— "Changed"Only
Build Successwill be required, so nothing depends on the old names. Thechangedrename is the one that loses descriptiveness — say if you'd rather itkept a fuller name at the cost of not deriving from its id.
Verified before pushing: every job body is byte-identical to
origin/main, thematrix
needsall resolve to the singlechangedjob,Build Successgates allfive, and
actionlint,zizmorandoxfmtare clean.Requirements
written by an AI agent (Claude Code) under maintainer direction, as part of a
wider branch-protection rollout. Per the AI Usage Policy this exceeds assistive
use and needs maintainer review before merge.